From 30a3d723dc39560b0df97ea3fa0437373eba32d6 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Fri, 5 May 2006 20:01:38 +0000 Subject: [PATCH] Add a new tool which generates a CVS-based (local CVS directory) gpsbabel file-list. --- tools/mkfilelist | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 tools/mkfilelist diff --git a/tools/mkfilelist b/tools/mkfilelist new file mode 100755 index 000000000..09c9df168 --- /dev/null +++ b/tools/mkfilelist @@ -0,0 +1,51 @@ +#!/bin/sh + +# create filelist using CVS Entries files +# +# Parameter 1: base directory where we're looking for the first CVS directory +# Parameter 2: insert directory name "$2" at the beginning of +# resulting filenames +# +# foo> ./tools/mkfilelist . gpsbabel-1.2.8/ +# +# creates a output like the this: +# +# ... +# gpsbabel-1.2.8/win32/gui-2/options.pas +# gpsbabel-1.2.8/win32/gui-2/utils.pas +# gpsbabel-1.2.8/win32/gui-2/GPSBabelGUI.res +# gpsbabel-1.2.8/win32/GPSBabelGUI.exe +# gpsbabel-1.2.8/copilot.c +# gpsbabel-1.2.8/gcdb.c +# gpsbabel-1.2.8/fatal.c +# ... + +function loop() +{ + test -f "$1/CVS/Entries" || return 0 + + case $1 in + /) return 0;; + esac + + IFS="/" + cat "$1/CVS/Entries" | + while read LINE; do + echo "$LINE" | + ( + read LEAD NAME READ + test "x$NAME" == "x" && continue + case $LEAD in + D) + loop "$1/$NAME/" "$2" + ;; + *) + echo "$2$1/$NAME" + ;; + esac + ) + done + IFS=" " +} + +loop "$1" "$2" | sed -e 's|\/\/|\/|g' -e 's|\.\.|\.|g' -e 's|\.\/||g' -- 2.30.2